This invention relates, in general, to facilitating processing within a computing environment, and in particular, to facilitating processing associated with setting storage keys used within the computing environment.
Storage keys are employed in computing environments, such as multiprocessor systems based on the z/Architecture® of International Business Machines Corporation, Armonk, N.Y., to facilitate processing within the environment. As one example, a storage key is associated with each block of real storage (also referred to as a frame). Such key association provides a reliability mechanism that is used to segregate blocks of storage, ensuring that programs executing in one key do not improperly store into or, subject to a control in the key, fetch from blocks having a different key. A storage key may also provide indications to an operating system as to which blocks have been referenced and changed, thus allowing the operating system to determine which blocks may need to be written to auxiliary storage.
A storage key may be set (updated) by instructions executing within the computing environment. As examples, in the z/Architecture®, a Set Storage Key Extended instruction and a Perform Frame Management Function instruction manipulate the storage key, which is accessible by multiple processors of the computing environment.
To improve system performance, a processor may buffer a subset of the storage keys in a local (processor-specific) area. However, when a storage key is set (which may or may not change the actual key value), then typically all processors in the multiprocessor configuration are to effectively observe the change simultaneously, such that stale local copies of the key are discarded. To facilitate this processing, a quiesce operation is performed, in which the initiator of the instruction to manipulate the storage key sends a quiesce signal to the other processors of the computing environment. In response to receiving the signal, the other processors quiesce their processing, purge locally cached copies of the key, and acknowledge the same. When all the processors that received the quiesce signal have acknowledged, the initiator sets the storage key to a desired value, and sends an unquiesce signal to the other processors, so that the other processors can resume execution.